#ifndef PICKING_H
#define PICKING_H

#include <GL/freeglut.h>
#include <GL/glut.h>

#include <string>

class Picking {
public:
	virtual void draw() = 0;

	bool compare_id(unsigned char* cmp);
	
	GLdouble modelview[16];
	GLdouble projection[16];
	GLint viewport[4];
	
	std::string name;
	
protected:
	Picking(std::string name);
	
	void set_color3f(float r, float g, float b);
	void set_color4f(float r, float g, float b, float a);
	
private:
	static unsigned char id_counter[3];
	
	unsigned char id[3];
};
#endif
